<html>
<head>
<title>GoF patterns in Ruby</title>
</head>
<body>
    <h2>GoF patterns in Ruby</h2>
    <hr>
    <i>Matthieu Tanguay-Carel - 2007</i>
    <br/>
    <br>
<h5>Creational Patterns</h5>
<ul>
    <li>Abstract Factory</li>
    <li>Builder</li>
    <li>Factory Method        &nbsp;&nbsp;&nbsp;<font size='1pt'># can be deduced from Abstract Factory</font></li>
    <li>Prototype</li>
    <li>Singleton             &nbsp;&nbsp;&nbsp;<font size='1pt'># available in standard lib (doc in singleton.rb)</font></li>
</ul>
<br/>
<h5>Structural Patterns</h5>
<ul>
    <li>Adapter</li>
    <li>Bridge                &nbsp;&nbsp;&nbsp;<font size='1pt'># can be deduced from Abstract Factory</font></li>
    <li>Composite</li>
    <li>Decorator             </li>
    <li>Facade                &nbsp;&nbsp;&nbsp;<font size='1pt'># boring and trivial</font></li>
    <li>Flyweight</li>
    <li>Proxy</li>
</ul>
<br/>
<h5>Behavioral Patterns</h5>
<ul>
    <li>Chain of Responsibility</li>
    <li>Command</li>
    <li>Interpreter           &nbsp;&nbsp;&nbsp;<font size='1pt'># skipped</font></li>
    <li>Iterator              &nbsp;&nbsp;&nbsp;<font size='1pt'># built-in (module Enumerable)</font></li>
    <li>Mediator              &nbsp;&nbsp;&nbsp;<font size='1pt'># skipped</font></li>
    <li>Memento</li>
    <li>Observer              &nbsp;&nbsp;&nbsp;<font size='1pt'># built-in (doc in observer.rb)</font></li>
    <li>State                 &nbsp;&nbsp;&nbsp;<font size='1pt'># nice implementation by maurice codik</font></li>
    <li>Strategy</li>
    <li>Template Method       &nbsp;&nbsp;&nbsp;<font size='1pt'># the simplest is the block yielded to</font></li>
    <li>Visitor</li>
</ul>
</body>
</html>
